<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>websocket::stream</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Beast">
<link rel="up" href="../ref.html" title="This Page Intentionally Left Blank 2/2">
<link rel="prev" href="boost__beast__websocket__seed_prng.html" title="websocket::seed_prng">
<link rel="next" href="boost__beast__websocket__stream/accept.html" title="websocket::stream::accept">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost__beast__websocket__seed_prng.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost__beast__websocket__stream/accept.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="beast.ref.boost__beast__websocket__stream"></a><a class="link" href="boost__beast__websocket__stream.html" title="websocket::stream">websocket::stream</a>
</h4></div></div></div>
<p>
        Provides message-oriented functionality using WebSocket.
      </p>
<h5>
<a name="beast.ref.boost__beast__websocket__stream.h0"></a>
        <span class="phrase"><a name="beast.ref.boost__beast__websocket__stream.synopsis"></a></span><a class="link" href="boost__beast__websocket__stream.html#beast.ref.boost__beast__websocket__stream.synopsis">Synopsis</a>
      </h5>
<p>
        Defined in header <code class="literal">&lt;<a href="../../../../../../boost/beast/websocket/stream.hpp" target="_top">boost/beast/websocket/stream.hpp</a>&gt;</code>
      </p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
    <span class="keyword">class</span> <span class="identifier">NextLayer</span><span class="special">,</span>
    <span class="keyword">bool</span> <span class="identifier">deflateSupported</span><span class="special">&gt;</span>
<span class="keyword">class</span> <span class="identifier">stream</span>
</pre>
<h5>
<a name="beast.ref.boost__beast__websocket__stream.h1"></a>
        <span class="phrase"><a name="beast.ref.boost__beast__websocket__stream.types"></a></span><a class="link" href="boost__beast__websocket__stream.html#beast.ref.boost__beast__websocket__stream.types">Types</a>
      </h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                <p>
                  Name
                </p>
              </th>
<th>
                <p>
                  Description
                </p>
              </th>
</tr></thead>
<tbody>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/executor_type.html" title="websocket::stream::executor_type"><span class="bold"><strong>executor_type</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  The type of the executor associated with the object.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/is_deflate_supported.html" title="websocket::stream::is_deflate_supported"><span class="bold"><strong>is_deflate_supported</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Indicates if the permessage-deflate extension is supported.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/lowest_layer_type.html" title="websocket::stream::lowest_layer_type"><span class="bold"><strong>lowest_layer_type</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  The type of the lowest layer.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/next_layer_type.html" title="websocket::stream::next_layer_type"><span class="bold"><strong>next_layer_type</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  The type of the next layer.
                </p>
              </td>
</tr>
</tbody>
</table></div>
<h5>
<a name="beast.ref.boost__beast__websocket__stream.h2"></a>
        <span class="phrase"><a name="beast.ref.boost__beast__websocket__stream.member_functions"></a></span><a class="link" href="boost__beast__websocket__stream.html#beast.ref.boost__beast__websocket__stream.member_functions">Member
        Functions</a>
      </h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                <p>
                  Name
                </p>
              </th>
<th>
                <p>
                  Description
                </p>
              </th>
</tr></thead>
<tbody>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/accept.html" title="websocket::stream::accept"><span class="bold"><strong>accept</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Read and respond to a WebSocket HTTP Upgrade request.
                </p>
                <p>
                  Respond to a WebSocket HTTP Upgrade request.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/accept_ex.html" title="websocket::stream::accept_ex"><span class="bold"><strong>accept_ex</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Read and respond to a WebSocket HTTP Upgrade request.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/async_accept.html" title="websocket::stream::async_accept"><span class="bold"><strong>async_accept</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Start reading and responding to a WebSocket HTTP Upgrade request.
                </p>
                <p>
                  Start responding to a WebSocket HTTP Upgrade request.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/async_accept_ex.html" title="websocket::stream::async_accept_ex"><span class="bold"><strong>async_accept_ex</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Start reading and responding to a WebSocket HTTP Upgrade request.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/async_close.html" title="websocket::stream::async_close"><span class="bold"><strong>async_close</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Start an asynchronous operation to send a WebSocket close frame.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/async_handshake.html" title="websocket::stream::async_handshake"><span class="bold"><strong>async_handshake</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Start an asynchronous operation to send an upgrade request and
                  receive the response.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/async_handshake_ex.html" title="websocket::stream::async_handshake_ex"><span class="bold"><strong>async_handshake_ex</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Start an asynchronous operation to send an upgrade request and
                  receive the response.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/async_ping.html" title="websocket::stream::async_ping"><span class="bold"><strong>async_ping</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Start an asynchronous operation to send a WebSocket ping frame.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/async_pong.html" title="websocket::stream::async_pong"><span class="bold"><strong>async_pong</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Start an asynchronous operation to send a WebSocket pong frame.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/async_read.html" title="websocket::stream::async_read"><span class="bold"><strong>async_read</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Read a message asynchronously.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/async_read_some.html" title="websocket::stream::async_read_some"><span class="bold"><strong>async_read_some</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Read part of a message asynchronously.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/async_write.html" title="websocket::stream::async_write"><span class="bold"><strong>async_write</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Start an asynchronous operation to write a message to the stream.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/async_write_some.html" title="websocket::stream::async_write_some"><span class="bold"><strong>async_write_some</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Start an asynchronous operation to send a message frame on the
                  stream.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/auto_fragment.html" title="websocket::stream::auto_fragment"><span class="bold"><strong>auto_fragment</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Set the automatic fragmentation option.
                </p>
                <p>
                  Returns true if the automatic fragmentation option is set.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/binary.html" title="websocket::stream::binary"><span class="bold"><strong>binary</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Set the binary message write option.
                </p>
                <p>
                  Returns true if the binary message write option is set.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/close.html" title="websocket::stream::close"><span class="bold"><strong>close</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Send a WebSocket close frame.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/control_callback.html" title="websocket::stream::control_callback"><span class="bold"><strong>control_callback</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Set a callback to be invoked on each incoming control frame.
                </p>
                <p>
                  Reset the control frame callback.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/get_executor.html" title="websocket::stream::get_executor"><span class="bold"><strong>get_executor</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Get the executor associated with the object.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/get_option.html" title="websocket::stream::get_option"><span class="bold"><strong>get_option</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Get the permessage-deflate extension options.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/got_binary.html" title="websocket::stream::got_binary"><span class="bold"><strong>got_binary</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Returns true if the latest message data indicates binary.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/got_text.html" title="websocket::stream::got_text"><span class="bold"><strong>got_text</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Returns true if the latest message data indicates text.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/handshake.html" title="websocket::stream::handshake"><span class="bold"><strong>handshake</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Send an HTTP WebSocket Upgrade request and receive the response.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/handshake_ex.html" title="websocket::stream::handshake_ex"><span class="bold"><strong>handshake_ex</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Send an HTTP WebSocket Upgrade request and receive the response.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/is_message_done.html" title="websocket::stream::is_message_done"><span class="bold"><strong>is_message_done</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Returns true if the last completed read finished the current message.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/is_open.html" title="websocket::stream::is_open"><span class="bold"><strong>is_open</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Returns true if the stream is open.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/lowest_layer.html" title="websocket::stream::lowest_layer"><span class="bold"><strong>lowest_layer</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Get a reference to the lowest layer.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/next_layer.html" title="websocket::stream::next_layer"><span class="bold"><strong>next_layer</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Get a reference to the next layer.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/operator_eq_.html" title="websocket::stream::operator="><span class="bold"><strong>operator=</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Assignment.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/ping.html" title="websocket::stream::ping"><span class="bold"><strong>ping</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Send a WebSocket ping frame.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/pong.html" title="websocket::stream::pong"><span class="bold"><strong>pong</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Send a WebSocket pong frame.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/read.html" title="websocket::stream::read"><span class="bold"><strong>read</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Read a message.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/read_message_max.html" title="websocket::stream::read_message_max"><span class="bold"><strong>read_message_max</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Set the maximum incoming message size option.
                </p>
                <p>
                  Returns the maximum incoming message size setting.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/read_size_hint.html" title="websocket::stream::read_size_hint"><span class="bold"><strong>read_size_hint</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Returns a suggested maximum buffer size for the next call to read.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/read_some.html" title="websocket::stream::read_some"><span class="bold"><strong>read_some</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Read part of a message.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/reason.html" title="websocket::stream::reason"><span class="bold"><strong>reason</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Returns the close reason received from the peer.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/secure_prng.html" title="websocket::stream::secure_prng"><span class="bold"><strong>secure_prng</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Set whether the PRNG is cryptographically secure.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/set_option.html" title="websocket::stream::set_option"><span class="bold"><strong>set_option</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Set the permessage-deflate extension options.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/stream.html" title="websocket::stream::stream"><span class="bold"><strong>stream</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Constructor.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/text.html" title="websocket::stream::text"><span class="bold"><strong>text</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Set the text message write option.
                </p>
                <p>
                  Returns true if the text message write option is set.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/write.html" title="websocket::stream::write"><span class="bold"><strong>write</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Write a message to the stream.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/write_buffer_size.html" title="websocket::stream::write_buffer_size"><span class="bold"><strong>write_buffer_size</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Set the write buffer size option.
                </p>
                <p>
                  Returns the size of the write buffer.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/write_some.html" title="websocket::stream::write_some"><span class="bold"><strong>write_some</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Write partial message data on the stream.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <a class="link" href="boost__beast__websocket__stream/stream_dtor_.html" title="websocket::stream::~stream"><span class="bold"><strong>~stream</strong></span></a>
                </p>
              </td>
<td>
                <p>
                  Destructor.
                </p>
              </td>
</tr>
</tbody>
</table></div>
<h5>
<a name="beast.ref.boost__beast__websocket__stream.h3"></a>
        <span class="phrase"><a name="beast.ref.boost__beast__websocket__stream.description"></a></span><a class="link" href="boost__beast__websocket__stream.html#beast.ref.boost__beast__websocket__stream.description">Description</a>
      </h5>
<p>
        The <a class="link" href="boost__beast__websocket__stream.html" title="websocket::stream"><code class="computeroutput"><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span></code></a> class template provides asynchronous
        and blocking message-oriented functionality necessary for clients and servers
        to utilize the WebSocket protocol.
      </p>
<p>
        For asynchronous operations, the application must ensure that they are are
        all performed within the same implicit or explicit strand.
      </p>
<h5>
<a name="beast.ref.boost__beast__websocket__stream.h4"></a>
        <span class="phrase"><a name="beast.ref.boost__beast__websocket__stream.thread_safety"></a></span><a class="link" href="boost__beast__websocket__stream.html#beast.ref.boost__beast__websocket__stream.thread_safety">Thread
        Safety</a>
      </h5>
<p>
        <span class="emphasis"><em>Distinct</em></span> <span class="emphasis"><em>objects:</em></span> Safe.
      </p>
<p>
        <span class="emphasis"><em>Shared</em></span> <span class="emphasis"><em>objects:</em></span> Unsafe. The application
        must also ensure that all asynchronous operations are performed within the
        same implicit or explicit strand.
      </p>
<h5>
<a name="beast.ref.boost__beast__websocket__stream.h5"></a>
        <span class="phrase"><a name="beast.ref.boost__beast__websocket__stream.example"></a></span><a class="link" href="boost__beast__websocket__stream.html#beast.ref.boost__beast__websocket__stream.example">Example</a>
      </h5>
<p>
        To use the <a class="link" href="boost__beast__websocket__stream.html" title="websocket::stream"><code class="computeroutput"><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span></code></a> template with an <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">socket</span></code>,
        you would write:
      </p>
<pre class="programlisting"><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;</span><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">socket</span><span class="special">&gt;</span> <span class="identifier">ws</span><span class="special">{</span><span class="identifier">io_context</span><span class="special">};</span>
</pre>
<p>
        Alternatively, you can write:
      </p>
<pre class="programlisting"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">socket</span> <span class="identifier">sock</span><span class="special">{</span><span class="identifier">io_context</span><span class="special">};</span>
<span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;</span><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">socket</span><span class="special">&amp;&gt;</span> <span class="identifier">ws</span><span class="special">{</span><span class="identifier">sock</span><span class="special">};</span>
</pre>
<h5>
<a name="beast.ref.boost__beast__websocket__stream.h6"></a>
        <span class="phrase"><a name="beast.ref.boost__beast__websocket__stream.template_parameters"></a></span><a class="link" href="boost__beast__websocket__stream.html#beast.ref.boost__beast__websocket__stream.template_parameters">Template
        Parameters</a>
      </h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                <p>
                  Type
                </p>
              </th>
<th>
                <p>
                  Description
                </p>
              </th>
</tr></thead>
<tbody>
<tr>
<td>
                <p>
                  <code class="computeroutput"><span class="identifier">NextLayer</span></code>
                </p>
              </td>
<td>
                <p>
                  The type representing the next layer, to which data will be read
                  and written during operations. For synchronous operations, the
                  type must support the SyncStream concept. For asynchronous operations,
                  the type must support the AsyncStream concept.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  <code class="computeroutput"><span class="identifier">deflateSupported</span></code>
                </p>
              </td>
<td>
                <p>
                  A <code class="computeroutput"><span class="keyword">bool</span></code> indicating
                  whether or not the stream will be capable of negotiating the permessage-deflate
                  websocket extension. Note that even if this is set to <code class="computeroutput"><span class="keyword">true</span></code>, the permessage deflate options
                  (set by the caller at runtime) must still have the feature enabled
                  for a successful negotiation to occur.
                </p>
              </td>
</tr>
</tbody>
</table></div>
<h5>
<a name="beast.ref.boost__beast__websocket__stream.h7"></a>
        <span class="phrase"><a name="beast.ref.boost__beast__websocket__stream.remarks"></a></span><a class="link" href="boost__beast__websocket__stream.html#beast.ref.boost__beast__websocket__stream.remarks">Remarks</a>
      </h5>
<p>
        A stream object must not be moved or destroyed while there are pending asynchronous
        operations associated with it.
      </p>
<h5>
<a name="beast.ref.boost__beast__websocket__stream.h8"></a>
        <span class="phrase"><a name="beast.ref.boost__beast__websocket__stream.concepts"></a></span><a class="link" href="boost__beast__websocket__stream.html#beast.ref.boost__beast__websocket__stream.concepts">Concepts</a>
      </h5>
<p>
        <span class="bold"><strong>AsyncStream</strong></span>, <span class="bold"><strong>DynamicBuffer</strong></span>,
        <span class="bold"><strong>SyncStream</strong></span>
      </p>
<p>
        Convenience header <code class="literal">&lt;<a href="../../../../../../boost/beast/websocket.hpp" target="_top">boost/beast/websocket.hpp</a>&gt;</code>
      </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2016, 2017 Vinnie Falco<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost__beast__websocket__seed_prng.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost__beast__websocket__stream/accept.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
